package com.gxa.ssm340.mapper;

import com.gxa.ssm340.entity.dto.*;
import com.gxa.ssm340.entity.pojo.Manager;
import com.gxa.ssm340.entity.pojo.Points;
import com.gxa.ssm340.entity.vo.AdminMenusVO;
import com.gxa.ssm340.entity.vo.PointGetVO;
import com.gxa.ssm340.exception.BizException;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 管理员操作接口
 * @author 赵文川
 * @Description: $
 * @date 2023/10/20 17:56
 */
public interface AdminMapper {

    /**
     * 新增员工信息方法
     * @param dto 存储员工手机号，密码，姓名
     * @return 返回影响的行数
     */
    Integer insertMgr(ManagerRegDTO dto);

    /**
     * 根据手机号查询员工信息
     * @param phone 手机号
     * @return 返回员工信息
     */
    Manager selectByPhone(String phone);

    List<Manager> selectAllManager(ManagerPageDTO dto);

    /**
     * （根据name/phone）分页获取全部员工信息
     * @param dto 存储员工field及分页信息page，count
     * @return  返回员工Manager集合
     */
    List<Manager> selectManagers(ManagerPageDTO dto);

    /**
     * 根据员工手机号逻辑删除员工信息
     * @param phone 员工手机号
     * @return 影响的行数
     */
    Integer deleteManagerById(@Param("phone") String phone);

    Integer updateIsUseByPhone(ManagerIsUseDTO dto);

    AdminMenusVO selectByPhoneAndPwd(AdminLoginDTO adminLoginDTO) throws BizException;

    AdminMenusVO selectMenusByPhone(String phone);

    /**
     * 根据手机号获取用户所有获得积分信息
     * @param dto 存储page和phone
     * @return 返回用户所有获得积分信息和用户姓名
     */
    List<Points> selectPointGetByPhone(PointGetDTO dto);

}
